1 /**
2 * Copyright 2008 WebPhotos
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package net.sf.webphotos.action;
17
18 import java.awt.event.ActionEvent;
19 import javax.swing.AbstractAction;
20 import javax.swing.JComboBox;
21 import javax.swing.JTable;
22 import javax.swing.JTextArea;
23 import net.sf.webphotos.Album;
24 import net.sf.webphotos.PhotoDTO;
25 import net.sf.webphotos.gui.util.TableModelFoto;
26 import net.sf.webphotos.util.Util;
27
28 /**
29 * Atualiza legenda. Seu construtor seta todas as variáveis da classe exceto o
30 * índice da foto. No método que implementa a ação, o índice é setado através
31 * dos valores da seleção obtidos no programa e a partir da posição é encontrada
32 * a foto e feita a atualização da legenda.
33 */
34 public class AcaoAtualizaLegenda extends AbstractAction {
35
36 /**
37 *
38 */
39 private static final long serialVersionUID = 3926799612502941998L;
40 private JTable tbFotos;
41 private JTextArea txtLegenda;
42 private int indiceFoto;
43 private JComboBox lstCreditos;
44
45 /**
46 * Construtor da classe. Recebe três parâmetros, uma tabela de fotos, um
47 * texto de legenda e uma lista de créditos. Seta esses 3 valores para
48 * variáveis da classe para posteriormente manipulá-las.
49 *
50 * @param tabela Tabela de fotos.
51 * @param legenda Texto de legenda.
52 * @param creditos Lista de créditos.
53 */
54 public AcaoAtualizaLegenda(JTable tabela, JTextArea legenda, JComboBox creditos) {
55 tbFotos = tabela;
56 txtLegenda = legenda;
57 lstCreditos = creditos;
58 }
59
60 /**
61 * Método responsável pela ação de atualização da legenda. Faz uma busca
62 * pelo índice da foto e seta a variável fID. Logo após, instancia um objeto
63 * PhotoDTO e indica a foto para atualização através de fID. Seta o valor da
64 * legenda da foto, pelo valor armazenado em txtLegenda e ao final atualiza
65 * os valores.
66 *
67 * @param e Evento de ação de atualização de legenda.
68 */
69 @Override
70 public void actionPerformed(ActionEvent e) {
71 Util.out.println("indiceFoto:" + indiceFoto);
72 int fID = Integer.parseInt(tbFotos.getModel().getValueAt(tbFotos.getSelectedRow(), 0).toString());
73 PhotoDTO f = Album.getAlbum().getFoto(fID);
74 f.setLegenda(txtLegenda.getText());
75 TableModelFoto.getModel().update();
76 TableModelFoto.getModel().fireTableCellUpdated(tbFotos.getSelectedRow(), 1);
77 lstCreditos.requestFocus();
78 }
79 }